# 使用官方的 Golang 镜像作为构建环境
FROM golang:1.24 AS builder

# 设置 Go 模块代理
ENV GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

# 设置工作目录
WORKDIR /app

# 将 go.mod 和 go.sum 文件复制到容器中
COPY go.mod go.sum ./

# 下载依赖
RUN go mod download

# 复制整个项目代码到容器中
COPY . .

# 构建 Go 应用程序（静态编译）
RUN CGO_ENABLED=0 GOOS=linux go build -o wx-user-boot .

# 使用轻量级的基础镜像运行应用程序
FROM alpine:latest

# 设置工作目录
WORKDIR /root/

# 从构建阶段复制生成的可执行文件
COPY --from=builder /app/wx-user-boot .

# 暴露应用程序的端口（假设你的应用监听 8080 端口）
EXPOSE 8080

# 启动应用程序
CMD ["./wx-user-boot"]